package thread;

public class Demo11 {
    public static void main(String[] args) {
        Thread t = new Thread(() -> {

            //Thread.currentThread()能够获取到当前线程。能够获取到t这个引用
            //isInterrupted()判断当前线程是否被中断，true 表示被中断 false表示没有被中断
            while(!Thread.currentThread().isInterrupted()){
                System.out.println("hello thread");
                try {
                    Thread.sleep(1000);//如果没有sleep确实是直接修改了标志位就完了，有sleep，并且是触发Interrupt的时候，
                                             // 线程正在sleep。sleep被唤醒的的同时就会清除刚才的标志位（又改回false）

                } catch (InterruptedException e) {
                    //当线程在sleep的时候，如果调用了interrupt()方法，那么线程就会抛出InterruptedException异常，并且中断状态会被清除
                    e.printStackTrace();//不结束时
                    //break;我想直接结束
                }
            }
        });

        t.start();

        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        t.interrupt();
    }
}
